﻿using System;

namespace NRank.Common
{
	/// <summary>
	/// Interface for ranked object.
	/// </summary>
	/// <typeparam name="T">Type of wrapped object</typeparam>
	public interface IRanked<T> : IComparable<IRanked<T>>, IComparable
	{
		/// <summary>
		/// Object rank
		/// </summary>
		double Rank { get; }

		/// <summary>
		/// Object itself
		/// </summary>
		T Object { get; }
	}
}
